

import java.util.Arrays;

//给定一个正整数 n，生成一个包含 1 到 n2 所有元素，
// 且元素按顺时针顺序螺旋排列的正方形矩阵。
public class 螺旋矩阵2 {
    public static void main(String[] args) {
        int[][] ints = generateMatrix(5);
        for (int[] m : ints) {
            System.out.println(Arrays.toString(m));
        }
    }
    public static int[][] generateMatrix(int n) {
        int[][] ints = new int[n][n];
        //将数组转换为二维矩阵
        int left=0;
        int right=n-1;
        int up=0;
        int down=n-1;
        int m=1;
        int num=n*n;
        while (m<=num){
            //从左往右
            for (int i=left; i<=right ; i++)
                ints[up][i]=m++;
            up++;
            //从上往下
            for (int i=up;i<=down;i++)
                ints[i][right]=m++;
            right--;
            //从右往左
            for (int i=right;i>=left;i--)
                ints[down][i]=m++;
           down--;
            //从下往上
            for (int i = down; i>=up ; i--)
                ints[i][left]=m++;
             left++;
        }
        return ints;
    }
}
